package com.app.ryjy.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 户口性质枚举
 */
@AllArgsConstructor
@Getter
public enum HouseholdNatureEnum {
    // 非农业户口（城镇）
    NON_AGRICULTURAL_HOUSEHOLD_TOWN("非农业户口（城镇）", 10, -1),
    // 本地非农业户口（本地城镇）
    LOCAL_NON_AGRICULTURAL_HOUSEHOLD_TOWN("本地非农业户口（本地城镇）", 11, -1),
    // 外地非农业户口（外地城镇）
    FOREIGN_NON_AGRICULTURAL_HOUSEHOLD_TOWN("外地非农业户口（外地城镇）", 12, -1),
    // 农业户口（农村）
    AGRICULTURAL_HOUSEHOLD_RURAL("农业户口（农村）", 20, -1),
    // 本地农业户口（本地农村）
    LOCAL_AGRICULTURAL_HOUSEHOLD_RURAL("本地农业户口（本地农村）", 21, -1),
    // 外地农业户口（外地农村）
    FOREIGN_AGRICULTURAL_HOUSEHOLD_RURAL("外地农业户口（外地农村）", 22, -1),
    // 港澳台侨人员
    COMPATRIOTS_FROM_HK_MACAU_TW("港澳台侨人员", 30, -1),
    // 香港特别行政区居民
    HK_SAR_RESIDENT("香港特别行政区居民", 31, -1),
    // 澳门特别行政区居民
    MACAU_SAR_RESIDENT("澳门特别行政区居民", 32, -1),
    // 台湾地区居民
    TAIWAN_AREA_RESIDENT("台湾地区居民", 33, -1),
    // 华侨
    OVERSEAS_CHINESE("华侨", 34, -1),
    // 外国人
    FOREIGNER("外国人", 40, -1),
    // 未取得永久居留权的外国人
    FOREIGNER_WITHOUT_PERMANENT_RESIDENCE("未取得永久居留权的外国人", 41, -1),
    // 取得永久居留权的外国人
    FOREIGNER_WITH_PERMANENT_RESIDENCE("取得永久居留权的外国人", 42, -1),
    // 居民户口（含农业户口、非农业户口）
    RESIDENT_HOUSEHOLD("居民户口（含农业户口、非农业户口）", 50, -1),
    // 本地居民户口
    LOCAL_RESIDENT_HOUSEHOLD("本地居民户口", 51, -1),
    // 外地居民户口
    FOREIGN_RESIDENT_HOUSEHOLD("外地居民户口", 52, -1);

    private final String desc;
    private final int code;
    private final int bizCode;

    /**
     * 根据 bizCode 获取 code
     *
     * @param bizCode bizCode
     * @return code
     */
    public static int getCodeByBizCode(int bizCode) {
        for (HouseholdNatureEnum nature : values()) {
            if (nature.getBizCode() == bizCode) {
                return nature.getCode();
            }
        }
        throw new RuntimeException("bizCode 不存在");
    }

    public static void main(String[] args) {
        System.out.println(HouseholdNatureEnum.getCodeByBizCode(10));
    }
}